package cn.jly.mybatis.enums;

/**
 * 通过自定义枚举typeHandler，希望朝数据库中写入的是100, 200, 300
 *
 * @author lanyangji
 * @description 员工状态枚举
 * @date 2020/11/20 下午 5:09
 */
public enum EmpStatus {
    /**
     * 在职
     */
    ONJOB(100, "在职"),
    /**
     * 休假
     */
    VOCATION(200, "休假"),
    /**
     * 离职
     */
    RESIGN(300, "离职");

    private int code;
    private String desc;

    EmpStatus(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据状态码获取枚举类型
     *
     * @param code
     * @return
     */
    public static EmpStatus valueOfCode(int code) {
        final EmpStatus[] values = EmpStatus.values();
        for (EmpStatus empStatus : values) {
            if (empStatus.getCode() == code) {
                return empStatus;
            }
        }

        return null;
    }

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "EmpStatus{" +
                "code=" + code +
                ", desc='" + desc + '\'' +
                '}';
    }
}
